{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "ac46337c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eceac4d2",
   "metadata": {},
   "source": [
    "# 生成数组"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fc3116de",
   "metadata": {},
   "source": [
    "## 生成0和1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "bd27000b",
   "metadata": {},
   "outputs": [],
   "source": [
    "ones = np.ones([4,8])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "ebab9a67",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1., 1., 1., 1., 1., 1., 1., 1.],\n",
       "       [1., 1., 1., 1., 1., 1., 1., 1.],\n",
       "       [1., 1., 1., 1., 1., 1., 1., 1.],\n",
       "       [1., 1., 1., 1., 1., 1., 1., 1.]])"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ones"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8d79b801",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0., 0., 0., 0., 0., 0., 0., 0.],\n",
       "       [0., 0., 0., 0., 0., 0., 0., 0.],\n",
       "       [0., 0., 0., 0., 0., 0., 0., 0.],\n",
       "       [0., 0., 0., 0., 0., 0., 0., 0.]])"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.zeros_like(ones)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "932a5aa6",
   "metadata": {},
   "source": [
    "## 从现有数组生成"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "f4d8fff3",
   "metadata": {},
   "outputs": [],
   "source": [
    "a  = np.array([[1,2,3],[4,5,6]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "327aa275",
   "metadata": {},
   "outputs": [],
   "source": [
    "a1 = np.array(a) # 深拷贝"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "id": "4e63c079",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3],\n",
       "       [4, 5, 6]])"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "099fd76e",
   "metadata": {},
   "outputs": [],
   "source": [
    "a2 = np.asarray(a) # 浅拷贝"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "92774a61",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3],\n",
       "       [4, 5, 6]])"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "8ace2686",
   "metadata": {},
   "outputs": [],
   "source": [
    "a[0,0] = 100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "33ccd9bb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[100,   2,   3],\n",
       "       [  4,   5,   6]])"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "5693c077",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3],\n",
       "       [4, 5, 6]])"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "id": "88aecf72",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[100,   2,   3],\n",
       "       [  4,   5,   6]])"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a2"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "113a1a4e",
   "metadata": {},
   "source": [
    "## 生成固定范围的数组"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "id": "ed16e588",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([  0.,  10.,  20.,  30.,  40.,  50.,  60.,  70.,  80.,  90., 100.])"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.linspace(0,100,11)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "id": "e943fe5c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42,\n",
       "       44, 46, 48])"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.arange(10,50,2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "56904ee9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([  1.,  10., 100.])"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.logspace(0,2,3) # 10的次方的数据"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d0c11c6d",
   "metadata": {},
   "source": [
    "## 生成随机数组"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "18df4ced",
   "metadata": {},
   "source": [
    "### 模块：np.random"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3bd9d57f",
   "metadata": {},
   "source": [
    "### 均匀分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "9e1a40b6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.42953753, 0.57128739, 0.52899886],\n",
       "       [0.52352243, 0.59683821, 0.24457612]])"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.random.rand(2,3) # 2行3列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "4a81d184",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[8.79405142, 4.08885699, 4.24357003, 5.47349254, 9.53581423],\n",
       "       [1.55901969, 8.28288287, 2.19486602, 4.26474798, 6.93902424],\n",
       "       [3.48705171, 3.47856784, 8.44583167, 1.43729301, 7.00598017]])"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.random.uniform(low=1,high=10,size=(3,5)) # 从1到10 ,生成3行5列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "a6302021",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[9, 5, 1, 1, 2],\n",
       "       [1, 2, 5, 6, 3],\n",
       "       [9, 8, 5, 1, 8]])"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.random.randint(1,10,(3,5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "id": "12c2d162",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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zO65554S1BwK67/GXAaKQvqvOS8DRTHWHaw50J/yXfe15tt7/vzXKeKee+6JL3zhC3kds3v37pgzZ06UlZVFRMTMmTNj586dubILL7wwt+/by6CYdu/eHbW1tTFq1KiIePO/hzc0NOR1jh07dkRjY2NcddVVERHx1FNPxVNPPRVjx46N9773vfGXf/mXyX/SBvJRaP996qmn4sUXX4z3vOc9MXbs2Pj85z8fbW1tuXMaf+kLhfbfG2+8MT784Q/nHu/fvz+qq6sjovu+DcVQSL/tblw15tKXCum/xlwGikL6rzkvA0Vv1x2sOdDf8l33tebbe0KVk8gnP/nJGDt2bIefv/3bv42qqqq8z9fS0tLuuIqKijh06FCPZVCIrvrvqlWr2vW1srKyGDp0aBw5ciT53H/zN38Tn//852PIkDeHvOeeey7mzZsXu3btigceeCDuvPPO+Pu///uit4lTR7H77/79++MjH/lI/PSnP40tW7bEj3/841i5cmVEGH8pvlKOv88991xs3rw5Pve5z0VE930biuGdY2RKvzXnZaAopP++nTGX/lRI/zXnZaDo7fhrzYH+lu+6r/lv7w3r7wpQPHfddVe89tprHbZXVlYWdL5hw4ZFeXl57vGIESPi+PHjPZZBIbrqv3fccUcuOX/LW/1t3LhxPZ731VdfjUceeSTuuOOO3LbHHnss9++qqqr4whe+EJs2bcr9Vgnkq9j9984772z3eNmyZbFq1aq48cYbjb8UXanG3xMnTsRnP/vZqKuri9/93d+NiO77NhTDO8fIiJ77rTkvA0Uh/fctxlz6WyH915yXgaI34681BwYj89/eE6qcRCZOnFjU81VWVkZTU1PucWtrawwfPrzHMihEV/33fe97X+zdu7fdtnz62/e+972YNWtWtxOh9773vXHw4MH0ysI7lKr/vuXtfdT4S7GVqv9+4xvfiFdffTX+6q/+qst9jL8UW2VlZd791pyXgaKQ/vsWYy79rTf99y3mvPSX3vRfaw4MRua/vefPf9GlmpqaqK+vzz3etWtXnH766T2WQTG9s681NjZGW1tb8v/A+u53vxuXX3557vFrr70W5513Xrvfyq6vr48pU6YUr9Lwvwrtvx/+8IfjwIEDucdv76PGX/pKb8bfH/zgB7FixYr4h3/4h9zfpo7ovm9DMRTSb815GSgKHXeNuQwEhfRfc14Git7Me605MBiZ/xZBkb/4ngEuIrLGxsZ225qbm7PXX3+9w75NTU3ZiBEjsh//+MfZ66+/nn384x/PbrjhhizLsuyZZ57JTjvttOzZZ5/NWltbsw984APZt771rb5oAqeYN954I3vPe96Tfec738myLMvq6uqyyy67LFd+5MiR7De/+U2nxx4/fjwbPnx49vzzz7fbPnfu3OzTn/50tmPHjmzFihXZsGHDsieeeKJ0jeCUVWj/vfbaa7NPfOIT2c9+9rNsw4YN2WmnnZZt2LAhyzLjL32n0P7b0NCQnXbaadnf/d3fZa2trVlra2t27NixLMu679tQDN312676bHfj6iOPPJK9//3vz1588cXs8OHD2emnn55t2rSp7xrEKaWQ/mvMZaAopP+a8zJQFNJ/s8yaAwPPO9d9rfmWjlDlFNNZqDJlypRs8+bNne6/du3a7F3velc2bty4rKqqKjt8+HCu7Ctf+Uo2fPjwrKKiIps+fXp2/PjxEtacU9kjjzySjRo1Khs/fnz2nve8J/v3f//3XFlEZLt27er0uMcffzybOHFih+2//OUvszlz5mTl5eXZ2WefbXGEkiqk/x45ciT75Cc/mY0cOTKbMmVKtmbNmnblxl/6SiH994tf/GIWEe1+pkyZkmVZz30biqGrftvdnKGrcfXEiRPZn/zJn2QjR47MRo4cmV122WXZiRMn+qopnILy7b/GXAaSfPuvOS8DSSHzB2sODDTvXPe15ls6ZVmWZX38n2MYZBobG2Pfvn0xa9asGD16dLuyhoaGOHjwYMyePdvf16OkDh8+HDt37oza2toYP358f1cH8lKK/mv8pa8YfxmMCum33Y2rO3bsiGPHjsXs2bOjrKysFFWGHOMug1mx+685L33J+Mupxppv4YQqAAAAAAAACXxRPQAAAAAAQAKhCgAAAAAAQAKhCgAAAAAAQAKhCgAAAAAAQAKhCgAAAAAAQAKhCgAAAAAAQAKhCgAAAAAAQAKhCgAAAAAAQAKhCgAAAAAAQIL/D0gguFl52Ng9AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 2000x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 生成均匀分布案例\n",
    "# 0.准备数据\n",
    "x = np.random.uniform(-1,1,100000000)\n",
    "# 1.创建画布\n",
    "plt.figure(figsize=(20,8),dpi=100)\n",
    "# 2.绘制画布\n",
    "plt.hist(x,bins=1000)\n",
    "# 3.显示图像\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0318070e",
   "metadata": {},
   "source": [
    "### 正态分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "b5a8c366",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1.86618608, 0.55542482, 1.59783746, ..., 0.6846651 , 0.79503898,\n",
       "       1.42841045])"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 生成正太分布数据\n",
    "np.random.normal(1.75,1,10000000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "id": "702a6cf7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 2000x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 生成正态分布案例\n",
    "# 0.准备数据\n",
    "x = np.random.normal(1.75,1,10000000) # 均值,方差\n",
    "# 1.创建画布\n",
    "plt.figure(figsize=(20,8),dpi=100)\n",
    "# 2.绘制画布\n",
    "plt.hist(x,bins=1000)\n",
    "# 3.显示图像\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "30ccffcd",
   "metadata": {},
   "source": [
    "# 数组索引，切片"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "8499940d",
   "metadata": {},
   "outputs": [],
   "source": [
    "stock_change = np.random.normal(0,1,(8,10))  # 0-1 生成8行10列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "a4dcb559",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.91512366, -0.56582928,  1.29392207,  1.15261916,  0.56236133,\n",
       "        -0.3594877 ,  1.12545959,  0.84152981,  0.75150903,  2.26010687],\n",
       "       [ 0.37512595, -0.84328506, -0.17490967, -0.4159462 ,  0.98311368,\n",
       "        -2.23315036,  1.07866087, -2.19920129,  0.19939471, -0.8873202 ],\n",
       "       [ 0.02484159,  0.14106855, -0.76049057, -0.22166955, -1.04122427,\n",
       "        -0.36156443, -1.27211392,  0.00466636,  0.78352039,  1.8500058 ],\n",
       "       [-0.78410837,  0.67252488, -1.58690041, -0.12381936,  0.59581381,\n",
       "         0.92231995, -1.48887463,  0.70805837, -0.46717126,  0.3373767 ],\n",
       "       [ 0.36461886, -1.31271101, -0.34638447, -0.92737802, -0.62995694,\n",
       "         0.32843064, -1.40246589, -0.47744112,  0.81623765, -2.26786052],\n",
       "       [ 1.50895817, -0.94141516,  0.42488867, -0.21649833, -0.85272555,\n",
       "         1.57479135,  0.19441721, -1.64138034,  0.80399022, -0.40427987],\n",
       "       [ 2.11840038, -1.12770982,  1.1632295 , -0.22937938,  1.43804778,\n",
       "        -0.94219836, -1.15775556, -0.67986918, -0.25131731, -1.02302587],\n",
       "       [ 0.14526026,  0.57349371,  1.27574069, -0.62793046,  0.04964769,\n",
       "         0.8740452 ,  0.33408237,  1.20954359,  0.87536551,  1.40811226]])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_change"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "48b61cea",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.91512366, -0.56582928,  1.29392207],\n",
       "       [ 0.37512595, -0.84328506, -0.17490967]])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 二维的数组,两个维度\n",
    "stock_change[0:2,0:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "d2585750",
   "metadata": {},
   "outputs": [],
   "source": [
    "a1 = np.array([ [[1,2,3],[4,5,6]], [[12,3,34],[5,6,7]] ])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "9c5fb244",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[ 1,  2,  3],\n",
       "        [ 4,  5,  6]],\n",
       "\n",
       "       [[12,  3, 34],\n",
       "        [ 5,  6,  7]]])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "87ae302a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a1[0,0,0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "95657021",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a1[0,0,1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "ae618065",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "12"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a1[1,0,0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "4b4271f9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "34"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a1[1,0,2]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9720c4a4",
   "metadata": {},
   "source": [
    "# 形状修改"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "6ad1b84c",
   "metadata": {},
   "outputs": [],
   "source": [
    "stock_change = np.random.normal(0,1,(4,5)) # 4个数组每个数组5个元素"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "bf311f56",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.70769107, -1.93341063, -0.28471941, -0.75712825,  1.12845735],\n",
       "       [ 0.93505867, -1.14039644,  0.14982132,  0.40907074, -1.42207273],\n",
       "       [ 0.37477582, -0.47952295, -2.4699591 ,  1.0506519 ,  1.80240884],\n",
       "       [-1.08513949, -0.20704135, -0.11971253,  0.71845144,  0.63675701]])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_change"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "8fef6697",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.70769107, -1.93341063, -0.28471941, -0.75712825],\n",
       "       [ 1.12845735,  0.93505867, -1.14039644,  0.14982132],\n",
       "       [ 0.40907074, -1.42207273,  0.37477582, -0.47952295],\n",
       "       [-2.4699591 ,  1.0506519 ,  1.80240884, -1.08513949],\n",
       "       [-0.20704135, -0.11971253,  0.71845144,  0.63675701]])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_change.reshape([5,4]) # 修改形状"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "1e0838ca",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.70769107, -1.93341063],\n",
       "       [-0.28471941, -0.75712825],\n",
       "       [ 1.12845735,  0.93505867],\n",
       "       [-1.14039644,  0.14982132],\n",
       "       [ 0.40907074, -1.42207273],\n",
       "       [ 0.37477582, -0.47952295],\n",
       "       [-2.4699591 ,  1.0506519 ],\n",
       "       [ 1.80240884, -1.08513949],\n",
       "       [-0.20704135, -0.11971253],\n",
       "       [ 0.71845144,  0.63675701]])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_change.reshape([-1,2])  # -1 自动计算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "f9a8422c",
   "metadata": {},
   "outputs": [],
   "source": [
    "stock_change.resize([5,4])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "4917cb96",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.70769107, -1.93341063, -0.28471941, -0.75712825],\n",
       "       [ 1.12845735,  0.93505867, -1.14039644,  0.14982132],\n",
       "       [ 0.40907074, -1.42207273,  0.37477582, -0.47952295],\n",
       "       [-2.4699591 ,  1.0506519 ,  1.80240884, -1.08513949],\n",
       "       [-0.20704135, -0.11971253,  0.71845144,  0.63675701]])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_change"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "dc03f798",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.70769107,  1.12845735,  0.40907074, -2.4699591 , -0.20704135],\n",
       "       [-1.93341063,  0.93505867, -1.42207273,  1.0506519 , -0.11971253],\n",
       "       [-0.28471941, -1.14039644,  0.37477582,  1.80240884,  0.71845144],\n",
       "       [-0.75712825,  0.14982132, -0.47952295, -1.08513949,  0.63675701]])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_change.T # 行列互换"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0649d1e6",
   "metadata": {},
   "source": [
    "# 类型修改"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "e7826aa4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.70769107, -1.93341063, -0.28471941, -0.75712825],\n",
       "       [ 1.12845735,  0.93505867, -1.14039644,  0.14982132],\n",
       "       [ 0.40907074, -1.42207273,  0.37477582, -0.47952295],\n",
       "       [-2.4699591 ,  1.0506519 ,  1.80240884, -1.08513949],\n",
       "       [-0.20704135, -0.11971253,  0.71845144,  0.63675701]])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_change"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "0751b3c1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dtype('int32')"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_change.astype(np.int32).dtype"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "573a1c19",
   "metadata": {},
   "outputs": [],
   "source": [
    "arr = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,2,1]]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "7ff6c2bf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "b'\\x01\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\x04\\x00\\x00\\x00\\x05\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\x04\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x01\\x00\\x00\\x00'"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr.tobytes() "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c2ed9a27",
   "metadata": {},
   "source": [
    "# 数组去重"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "85495ee3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 2, 3, 4, 5, 6])"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr = np.array([[1,2,3,4,5],[3,4,5,4,6]])\n",
    "np.unique(arr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "781195b6",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.8"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
